package com.egao.common.module.pushInformation.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.egao.common.module.company.entity.Preach;
import com.egao.common.module.company.entity.PreachCloud;
import com.egao.common.module.company.entity.Recruit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 状态详见PushInformationConstant
 * @author lym
 * @date 2024/8/23 9:38
 */

@ApiModel(description = "推送信息")
@TableName("push_information")
@Data
public class PushInformation {

    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("推送状态")
    private Integer pushState;

    @ApiModelProperty("推送时间")
    private Date pushTime;

    @ApiModelProperty("信息类型")
    private Integer category;

    @ApiModelProperty("学生年份")
    private Integer yearId;

    @ApiModelProperty(value = "信息ID", notes = "招聘信息、宣讲会、空中宣讲会")
    private Integer businessId;

    @ApiModelProperty("接收学生ID")
    private Integer studentId;

    @ApiModelProperty("发布信息单位ID")
    private Integer companyId;

    @ApiModelProperty("查看状态")
    private Integer readState;

    @ApiModelProperty("查看时间")
    private Date readTime;

    @ApiModelProperty("发送简历状态")
    private Integer resumeState;

    @ApiModelProperty("发送简历时间")
    private Date resumeTime;

    @ApiModelProperty("信息标题")
    private String title;

    @ApiModelProperty("学号")
    private String xh;

    @ApiModelProperty("姓名")
    private String xm;

    @ApiModelProperty("学院名称")
    private String collegeName;

    @ApiModelProperty("专业名称")
    private String majorName;

    @ApiModelProperty("单位名称")
    private String companyName;

    @ApiModelProperty("单位性质")
    private String companyNature;

    @ApiModelProperty("单位行业")
    private String companyIndustry;

    @ApiModelProperty("单位规模")
    private String companyScale;

    @ApiModelProperty("单位所在地")
    private String companyArea;

    @ApiModelProperty("添加时间")
    private Date createTime;

    @ApiModelProperty("编辑时间")
    private Date updateTime;

    @ApiModelProperty("逻辑删除 0正常 1删除")
    @TableLogic
    private Integer deleted;

    // #
    @ApiModelProperty("推荐信息下的职位集合")
    @TableField(exist = false)
    private List<PushInformationPosition> positionList;

    @ApiModelProperty("推荐信息的招聘信息")
    @TableField(exist = false)
    private Recruit recruit;

    @ApiModelProperty("推荐信息的校内宣讲会")
    @TableField(exist = false)
    private Preach preach;

    @ApiModelProperty("推荐信息的空中宣讲会")
    @TableField(exist = false)
    private PreachCloud preachCloud;

    @ApiModelProperty("信息类型文本")
    @TableField(exist = false)
    private String categoryLabel;

    @ApiModelProperty("查看状态文本")
    @TableField(exist = false)
    private String readStateLabel;

    @ApiModelProperty("发送简历状态文本")
    @TableField(exist = false)
    private String resumeStateLabel;

    @ApiModelProperty("职位和匹配度字符串")
    @TableField(exist = false)
    private String jobs;
}
